A virtual machine is software implementation of a computing machine. A virtual machine can be used to divide a single host computer system into multiple virtual machines, where each virtual machine runs a separate instance, or image, of an operating system (OS). A virtual machine is separate, or isolated, from other virtual machines and may also be isolated from hardware available on a host system. For example, instances of virtual machines can have separate file systems, separate users, separate applications, and separate processes. In other ways, however, the instances of the virtual machines are not separate and can share some resources of the host. For example, the instances of the virtual machines can share the memory, processors, network cards, hard drives, and other hardware of the host computer system.
Virtual machines haven proven useful in many environments. For example, virtual machines can be used to provide different operating systems on a computing system. Further, virtual machines can be used to provide a secure environment in which to execute untrusted software or to browse untrusted web sites. The virtual machine in such cases can be isolated from the main file system and hardware of the underlying computing system. Thus any corruption caused by malware or improperly functioning software is limited to the virtual machine.
Virtual machines typically access a virtual disk that appears to the virtual machine as a physical disk. A virtual disk is typically a copy of one or more file systems stored on a physical disk (or another virtual disk). In conventional systems, the virtual disk typically has a copy of all of the files in a file system. Thus the copy of the file system on a virtual disk may contain more files than are necessary for the virtual machine's intended purpose. Such unnecessary files may include files containing sensitive data such as passwords, financial information, personal information etc.